package main

import (
	"fmt"
	"math"
	"strconv"
)

func main() {
	testRound()

}

func testRound() {
	floatDigit := 1 * 1.0 / 256
	fmt.Println(1 * 10000 / 256)
	fmt.Println(floatDigit)
	fmt.Println(strconv.ParseFloat(fmt.Sprintf("%.5f", floatDigit), 64))
	fmt.Println(Round(floatDigit, 5))
}

/*
Round 四色五入,保留 exponent 位
exponent: 幂指数(10^n 中n的值)
tenExponent: 指数值(10^n 中10^n的整体值)
*/
func Round(floatDigit float64, exponent int) float64 {
	//以10为底, exponent为幂指数倍
	tenExponent := math.Pow10(exponent)
	//先在取舍为加5, 再剔除不需要的位数
	return math.Trunc((floatDigit+0.5/tenExponent)*tenExponent) / tenExponent
}
